import request from '@/utils/axios'
import type { Result } from '@/types'

interface FileUploadVO {
  fileName: string
  fileUrl: string
}

export const uploadApi = {
  // 上传文件
  uploadFile: async (file: File) => {
    const formData = new FormData()
    formData.append('file', file)
    return request.post<Result<FileUploadVO>>('/file/upload', formData, {
      headers: {
        'Content-Type': 'multipart/form-data',
      },
    })
  },

  // 文件上传前的验证
  validateImage: (file: File): { valid: boolean; message?: string } => {
    // 验证文件类型
    if (!file.type.startsWith('image/')) {
      return {
        valid: false,
        message: '请上传图片文件',
      }
    }

    // 验证文件大小（限制为 2MB）
    if (file.size > 2 * 1024 * 1024) {
      return {
        valid: false,
        message: '图片大小不能超过 2MB',
      }
    }

    return { valid: true }
  },
}
